package cn.catsdad.controller;

import cn.catsdad.base.controller.BaseCrudController;
import cn.catsdad.base.web.HttpResponse;
import cn.catsdad.dto.RoleDTO;
import cn.catsdad.page.RoleParam;
import cn.catsdad.service.api.RoleService;
import org.springframework.web.bind.annotation.*;

import java.util.Collection;

/**
 * 角色管理
 *
 * @author xuyonglong
 * @version V1.0 2023/4/24
 */
@RestController
@RequestMapping("/api/auth/roles")
public class RoleController extends BaseCrudController<RoleDTO, Long, RoleService, RoleParam> {

    /**
     * 设置用户
     *
     * @param role 数据传输对象
     * @return 通用返回
     */
    @PostMapping("/users")
    public HttpResponse<String> setUsers(@RequestBody RoleDTO role) {
        service.setUsers(role);
        return new HttpResponse<>();
    }

    /**
     * 绑定功能项
     *
     * @param id      角色id
     * @param menuIds 功能项id集合
     * @return 通用返回结果
     */
    @PostMapping("/{id}/menus")
    public HttpResponse<String> bingMenu(@PathVariable("id") Long id, @RequestBody Collection<Long> menuIds) {
        service.bingMenus(id, menuIds);
        return new HttpResponse<>();
    }

}
